A virtual appliance (vApp) is a pre-built, pre-configured, ready to run application solution that is packaged along with an optimized operating system (OS) called as Just enough Operating System (JeOS). A vApp caters to delivering a single business service and can be composed of (a) a single virtual machine (VM) containing all the business services, (b) multiple VM's or (c) VM collections that collectively service the business need. A vApp can be deployed using a supporting hypervisor or a VM manager, e.g., vSphere/vCenter from VMWare of Palo Alto, Calif. vApps have been gaining a lot of popularity with the advent of cloud computing. Many Independent Software Vendors (ISVs) are interested in creating vApps for distributing their software over the cloud. Most of these ISVs typically distribute the software by creating traditional installation packages for the software. Distributing software using traditional install packages typically is a daunting task for the ISVs. Installation and configuration can take hours and days and yet there might be several configuration problems that can cause a bad software experience or even elevated support costs.
In today's world, there are different organizations that have different sets of hardware and operating system (OS) resources. The organizations expect the ISVs to be able to configure the software to execute on the existing hardware and OS resources. This can cause considerable strain to the ISV—the ISV has to test and certify the same software on different platforms. vApps can eliminate these problems as the customer may not be even aware of the underlying platform, as the service is just hosted on a hypervisor. This can in-turn result in reduced testing matrix of supported platforms for the ISV. However, the infrastructure of the ISVs is typically focused towards creating traditional installation packages. If the ISVs have to build a vApp for their software, they have to build the vApp anew, which can consume significant resources.